#ifndef SPELL_H
#define SPELL_H

#include "../external/ispell.h"
#include "../external/iunit.h"
#include "movingobject.h"

class Spell : public MovingObject, public virtual ISpell
{
public:
    Spell(const IUnit *caster, SpellKind kind);
    ~Spell();

    SpellKind kind() const;
    void accept(ISceneObjectVisitor *visitor);

    static const float FIREBALL_SPEED;
    static const float FROSTBALL_SPEED;
    static const float MAGIC_ARROW_SPEED;

private:
    void init();
    SpellKind _kind;
};

#endif // SPELL_H
